var express = require('express');
var router = express.Router();
const md5 = require('md5');
// 导入jwt
const jwt = require('jsonwebtoken')

// 导入 用户的模型
const UserModel = require('../../models/UserModel');
const { secret } = require('../../config/config');
// 1. 引入 express-session 和 connect-mongo
// const session = require('express-session');
// const MongoStore = require('connect-mongo');

// 登录操作
router.post('/login', (req, res) => {
    // 获取用户名和密码
    let { username, password } = req.body;

    // 查询数据库
    UserModel.findOne({ username: username, password: md5(password) }).exec()
        .then((data) => {
            if (!data) {
                // 移动端App解析JSON数据，然后根据内容显示不同的效果
                res.json({
                    code: '2002',
                    msg: '账号或密码错误！',
                    data: null
                })
                return;
            }

            // 创建当前用户的 token
            let token = jwt.sign({
                username: data.username,
                _id: data._id
            }, `${secret}`, {
                expiresIn: 60 * 60 * 24 * 7
            })

            // 响应token
            res.json({
                code: '0000',
                msg: '登录成功',
                data: token
            })
        })
        .catch((err) => {
            res.json({
                code: '2001',
                msg: '数据库读取失败！',
                data: null
            })
        });
});



// 退出登录
router.get('/logout', (req, res) => {
    // 销毁session
    req.session.destroy(() => {
        res.render('success', { msg: '退出成功。', url: '/login' });
    });
});


module.exports = router;